package com.horoscope.astrology.zodiac.signs.free.view

import android.app.Dialog
import android.content.Context
import android.view.Gravity
import android.view.ViewGroup
import android.widget.Button
import com.horoscope.astrology.zodiac.signs.free.R


/**
 *  作者    1024
 *  时间    2019-11-27 09:14
 *  文件    constellation-android
 *  描述
 */
class RatingDialog(context: Context) : Dialog(context, R.style.rating_Dialog_style) {

    private var nope: Button? = null
    private var sure: Button? = null

    //    private var titleTv: TextView? = null//消息标题文本
    //    private var messageTv: TextView? = null//消息提示文本
    //    private var titleStr: String? = null//从外界设置的title文本
    //    private var messageStr: String? = null//从外界设置的消息文本
    //    //确定文本和取消文本的显示内容
    //    private var yesStr: String? = null, private var noStr:String? = null

    private var nopeOnclickListener: OnNopeOnclickListener? = null //取消按钮被点击了的监听器
    private var sureOnclickListener: OnSureOnclickListener? = null //确定按钮被点击了的监听器

    /**
     * 设置取消按钮的显示内容和监听
     *
     * @param onNopeOnclickListener
     */
    fun setNopeOnclickListener(onNopeOnclickListener: OnNopeOnclickListener) {
        this.nopeOnclickListener = onNopeOnclickListener
    }

    /**
     * 设置确定按钮的显示内容和监听
     *
     * @param onSureOnclickListener
     */
    fun setSureOnclickListener(onSureOnclickListener: OnSureOnclickListener) {
        this.sureOnclickListener = onSureOnclickListener
    }

//    protected fun onCreate(savedInstanceState: Bundle) {
//        super.onCreate(savedInstanceState)
//        setContentView(R.layout.rating_dialog_fragment)
//        //按空白处不能取消动画
//        setCanceledOnTouchOutside(false)
//        window.setGravity(Gravity.CENTER)
//        window.setLayout(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT)
//        //初始化界面控件
//        initView()
//        //初始化界面数据
//        initData()
//        //初始化界面控件的事件
//        initEvent()
//
//    }

    /**
     * 初始化界面的确定和取消监听器
     */
    private fun initEvent() {
        //设置确定按钮被点击后，向外界提供监听
        sure!!.setOnClickListener {
            if (sureOnclickListener != null) {
                sureOnclickListener!!.onSureClick()
            }
        }
        //设置取消按钮被点击后，向外界提供监听
        nope!!.setOnClickListener {
            if (nopeOnclickListener != null) {
                nopeOnclickListener!!.onNopeClick()
            }
        }
    }

//    /**
//     * 初始化界面控件的显示数据
//     */
//    private fun initData() {
//如果用户自定了title和message
//        if (titleStr != null) {
//            titleTv!!.setText(titleStr)
//        }
//        if (messageStr != null) {
//            messageTv!!.setText(messageStr)
//        }
//        //如果设置按钮的文字
//        if (yesStr != null) {
//            yes!!.text = yesStr
//        }
//        if (noStr != null) {
//            no!!.setText(noStr)
//        }
//    }

    /**
     * 初始化界面控件
     */
    private fun initView() {
        sure = findViewById(R.id.bt_sure)
        nope = findViewById(R.id.bt_nope)
//        titleTv = findViewById(R.id.title) as TextView
//        messageTv = findViewById(R.id.message) as TextView
    }

    //    /**
    //     * 从外界Activity为Dialog设置标题
    //     *
    //     * @param title
    //     */
    //    fun setTitle(title: String) {
    //        titleStr = title
    //    }
    //
    //    /**
    //     * 从外界Activity为Dialog设置dialog的message
    //     *
    //     * @param message
    //     */
    //    fun setMessage(message: String) {
    //        messageStr = message
    //    }

    /**
     * 设置确定按钮和取消被点击的接口
     */
    interface OnSureOnclickListener {
        fun onSureClick()
    }

    interface OnNopeOnclickListener {
        fun onNopeClick()
    }

    init {
        setContentView(R.layout.rating_dialog_fragment)
        setCanceledOnTouchOutside(false)
        window?.let {
            it.setGravity(Gravity.CENTER)
            it.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
            it.attributes.height = ViewGroup.LayoutParams.WRAP_CONTENT
            it.attributes.width = ViewGroup.LayoutParams.WRAP_CONTENT
            it.attributes.gravity = Gravity.CENTER
        }
        initView()
        initEvent()
    }

}